/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modules.estoque.bo;

import java.util.List;
import modules.estoque.models.dao.GruposProdutoDAO;
import modules.estoque.models.dto.GruposProduto;
import modules.estoque.util.BoxPanel;
import modules.estoque.util.Funcoes;
import modules.estoque.validation.Validation;
import org.hibernate.exception.ConstraintViolationException;

/**
 *
 * @author Clezio
 */
public class GruposProdutoBO {
    public boolean save(GruposProduto gruposProduto){
        try{
            Validation.getInstance().valid(gruposProduto);
            if(Validation.getInstance().hasErrors()){
                BoxPanel.showMessageError(Funcoes.getListErros(Validation.getInstance().getErros()));
                return false;
            }else{
                new GruposProdutoDAO().save(gruposProduto);
            }
            return true;
        }catch(ConstraintViolationException e){
            BoxPanel.showMessageDialog(null,"Não foi possível salvar Grupo de Produto. Por favor, tente novamente.");
        }catch(Exception e){
            BoxPanel.showMessageDialog(null,"Não foi possível salvar Grupo de Produto. Por favor, tente novamente.");
            Funcoes.registrarLogErro(e);
        }
        return false;
    }

    public List<GruposProduto> getList(String sql){
        try{
            return new GruposProdutoDAO().getList(sql);
        }catch(Exception e){
            BoxPanel.showMessageDialog(null,"Não foi possível listar Grupos de Produto.");
            Funcoes.registrarLogErro(e);
        }
        return null;
    }

    public GruposProduto retrieve(Integer pk){
        try{
            return new GruposProdutoDAO().retrieve(pk);
        }catch(Exception e){
            BoxPanel.showMessageDialog(null,"Grupo de Produto não encontrado");
            Funcoes.registrarLogErro(e);
        }
        return null;
    }

    public boolean delete(GruposProduto gruposProduto){
        try{
            if(BoxPanel.showConfirmDialog(null, "Deseja realmente excluir o registro?") == 0){
                new GruposProdutoDAO().delete(gruposProduto);
                return true;
            }
        }catch(Exception e){
            BoxPanel.showMessageDialog(null,"Não foi possível excluir Grupo de Produto.");
            Funcoes.registrarLogErro(e);
        }
        return false;
    }
}
